package com.cornergj.uitl;

import java.awt.Rectangle;  
import java.awt.image.BufferedImage;  
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;
import java.io.IOException;  
import java.util.Iterator;  
  





import javax.imageio.ImageIO;  
import javax.imageio.ImageReadParam;  
import javax.imageio.ImageReader;  
import javax.imageio.stream.ImageInputStream;  
import javax.imageio.stream.ImageOutputStream;
  
public class CutPicture {  
    private int x;  
    private int y;  
    private int width;  
    private int height;  
    public CutPicture() {  
    }  
    public CutPicture(int x, int y, int width, int height) {  
        this.x = x;  
        this.y = y;  
        this.width = width;  
        this.height = height;  
    }  
    
    public byte[] cutByNet(BufferedInputStream bis) throws IOException {  
    	BufferedInputStream is = null;  
        ImageInputStream iis = null;  
        try {
            is = bis;  
            Iterator<ImageReader> it = ImageIO  
                    .getImageReadersByFormatName("jpg");  
            ImageReader reader = it.next();  
            iis = ImageIO.createImageInputStream(is);  
            reader.setInput(iis, true);  
            ImageReadParam param = reader.getDefaultReadParam();  
            Rectangle rect = new Rectangle(x, y, width, height);  
            param.setSourceRegion(rect);  
            BufferedImage bi = reader.read(0, param);  
            ByteArrayOutputStream bout = new ByteArrayOutputStream();
            ImageIO.write(bi, "jpg", bout);
            byte[] imagebyte=bout.toByteArray();
            return imagebyte;
        } finally {  
            if (is != null)  
                is.close();  
            if (iis != null)  
                iis.close();  
        }  
    } 
    
}  
